Extending communication services to a consumption device using a proxy device

ABSTRACT

A system for data communications comprising a handset having a processor, a wireless communications device, a speaker and a microphone and one or more software applications operating on the processor that are configured to interface with a voice over long-term evolution (VoLTE) service. A wireless access point coupled to the handset through a local wireless communications media and the wireless communications device, the wireless access point further coupled to a long range wireless communications media and configured to interface with a server that provides VoLTE calling functionality.

RELATED APPLICATIONS

The present application is a continuation of U.S. patent application Ser. No. 15/888,699 filed Feb. 5, 2018, which is a continuation of U.S. patent application Ser. No. 14/855,265 filed Sep. 15, 2015, which issued on Feb. 6, 2018 as U.S. Pat. No. 9,888,044, which claims priority to U.S. Provisional Patent Application No. 62/050,516, filed Sep. 15, 2014, which is hereby incorporated by reference for all purposes as if set forth herein in its entirety.

TECHNICAL FIELD

The present disclosure relates generally to data communications, and more specifically to extending communication services to a consumption device using a proxy device.

BACKGROUND OF THE INVENTION

Data communications includes the use of packet switched networks to support voice communications, but due to regulatory requirements, certain classes of devices may be incapable of using different types of communications protocols.

SUMMARY OF THE INVENTION

A system for data communications comprising a handset having a processor, a wireless communications device, a speaker and a microphone and one or more software applications operating on the processor that are configured to interface with a voice over long-term evolution (VoLTE) service. A wireless access point coupled to the handset through a local wireless communications media and the wireless communications device, the wireless access point further coupled to a long range wireless communications media and configured to interface with a server that provides VoLTE calling functionality.

Other systems, methods, features, and advantages of the present disclosure will be or become apparent to one with skill in the art upon examination of the following drawings and detailed description. It is intended that all such additional systems, methods, features, and advantages be included within this description, be within the scope of the present disclosure, and be protected by the accompanying claims.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

Aspects of the disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views, and in which:

FIG. 1 is a diagram of a system for extending communication services to a consumption device using a proxy device, in accordance with an exemplary embodiment of the present disclosure;

FIG. 2 is a diagram of an algorithm for receiving a call at a VoLTE-enabled device, in accordance with an exemplary embodiment of the present disclosure; and

FIG. 3 is a diagram of an algorithm for setting up a call at a VoLTE-enabled device, in accordance with an exemplary embodiment of the present disclosure.

DETAILED DESCRIPTION OF THE INVENTION

In the description that follows, like parts are marked throughout the specification and drawings with the same reference numerals. The drawing figures might not be to scale and certain components can be shown in generalized or schematic form and identified by commercial designations in the interest of clarity and conciseness.

FIG. 1 is a diagram of a system 100 for extending communication services to a consumption device using a proxy device, in accordance with an exemplary embodiment of the present disclosure. System 100 can be implemented in hardware or a suitable combination of hardware and software, and can be one or more software systems operating on one or more processors.

As used herein, “hardware” can include a combination of discrete components, an integrated circuit, an application-specific integrated circuit, a field programmable gate array, or other suitable hardware. As used herein, “software” can include one or more objects, agents, threads, lines of code, subroutines, separate software applications, two or more lines of code or other suitable software structures operating in two or more software applications, on one or more processors (where a processor includes a microcomputer or other suitable controller, memory devices, input-output devices, displays, data input devices such as a keyboard or a mouse, peripherals such as printers and speakers, associated drivers, control cards, power sources, network devices, docking station devices, or other suitable devices operating under control of software systems in conjunction with the processor or other devices), or other suitable software structures. In one exemplary embodiment, software can include one or more lines of code or other suitable software structures operating in a general purpose software application, such as an operating system, and one or more lines of code or other suitable software structures operating in a specific purpose software application. As used herein, the term “couple” and its cognate terms, such as “couples” and “coupled,” can include a physical connection (such as a copper conductor), a virtual connection (such as through randomly assigned memory locations of a data memory device), a logical connection (such as through logical gates of a semiconducting device), other suitable connections, or a suitable combination of such connections.

System 100 includes handset 102, which communicates with WiFi hotspot 104 over communications media 124. In one exemplary embodiment, handset 102 can have an associated sender 116 and listener 118 that communicate with a corresponding listener 120 and sender 122 of WiFi hotspot 104. Handset 102 also includes dialer 110, security 112 and VoLTE 114. Dialer 110 can be an application operating on handset 102 or other suitable hardware or software that is configured to generate a digit stream for dialing an outgoing number. In one exemplary embodiment, dialer 110 can be implemented using one or more objects, each having graphic, functional and text attributes that generate a plurality of user-selectable keypad controls that allow a user to enter a telephone number or other suitable numbers.

Security 112 can be an application operating on handset 102 or other suitable hardware or software that is configured to control access to WiFi hotspot 104. In one exemplary embodiment, security 112 can be implemented using one or more objects, each having graphic, functional and text attributes that generate a plurality of user-selectable keypad controls that prompts a user to enter a personal identification number or other suitable codes to prevent an unauthorized user from accessing the calling functionality of VoLTE proxy 124.

VoLTE 114 can be one or more software applications configured to provide voice over Long Term Evolution (VoLTE) communications, in accordance with the LTE standard for communication published by the 3^(rd) Generation Partnership Project. In one exemplary embodiment, a handset can be configured to communicate using voice over LTE in conjunction with VoLTE proxy 124 on WiFi hotspot 104. VoLTE proxy 124 can be one or more software applications that interface with one or more handsets 102, which can be smart phones, Bluetooth handsets or other suitable devices.

In operation, a user can place an outgoing call using handset 102 and WiFi hotspot 104, by dialing a telephone number using dialer 110 after accessing WiFi hotspot over communications media 124. Dialer 110 can be used to enter a PIN for security 112, and to transmit an outgoing number to set up a call to called/calling party 108. WiFi hotspot 104 and VoLTE proxy 124 then set up the call to called/calling party 108 using server 106 over communications media 126 and communications media 128, each of which can be a wireless communications medium, a wireline communications medium, other suitable communications media or a suitable combination of communications media. On one exemplary embodiment, communications media 126 can be a LTE long range wireless data network, and communications media 128 can be the public switched telephone network (PSTN), a private packet switched network or other suitable media or combinations of media.

Likewise, a user can receive an incoming call from called/calling party 108, who calls VoLTE proxy 124 over communications media 128 and communications media 126 using server 106. VoLTE proxy 124 can generate a ring signal on handset 102 and other suitable handsets, and can establish a voice channel with the first handset that answers using listener 120 and sender 122 or in other suitable manners.

FIG. 2 is a diagram of an algorithm 200 for receiving a call at a VoLTE-enabled device, in accordance with an exemplary embodiment of the present disclosure. Algorithm 200 can be implemented in hardware or a suitable combination of hardware and software, and can be one or more software systems operating on one or more processors.

Algorithm 200 begins at 202, where a call is received on a VoLTE proxy operating on a WiFi hotspot. In one exemplary embodiment, the WiFi hotspot can have an associated telephone number that is registered with a server that provides VoLTE services, and a third party can call that number in order to set up a call with a user associated with the VoLTE proxy. When the calling party enters the telephone number of the VoLTE proxy, a server and other suitable communications devices set up a voice channel between the calling party and the VoLTE proxy using suitable algorithms. The algorithm then proceeds to 204.

At 204, the VoLTE proxy generates a ring tone on one or more handset devices. In one exemplary embodiment, each handset device can be registered with the VoLTE proxy over associated sender and listener ports, and the VoLTE proxy can send a ring command to a VoLTE system or algorithm operating on each handset, or other suitable algorithms can be used to generate the ring command. The algorithm then proceeds to 206.

At 206, it is determined whether a handset has answered the call. In one exemplary embodiment, a VoLTE application operating on the handset can generate an answer control, can receive an off hook control signal from a device, or can use other suitable algorithmic processes or devices to generate an off hook signal that is transmitted to the VoLTE proxy. If it is determined that no off hook signal or other suitable control data has been received at 206, such as by checking a predetermined register for a predetermined stored data value, the algorithm proceeds to 214. Otherwise, the algorithm proceeds to 208.

At 208, one or more other handsets are deactivated by the VoLTE proxy. In one exemplary embodiment, a predetermined data register can be set to a value that prevents the other handsets from establishing a connection with the VoLTE proxy while it is being used to support a telephone call. Likewise, other suitable processes or algorithms can also or alternatively be used. The algorithm then proceeds to 210.

At 210, the voice channel is established to the answering handset. In one exemplary embodiment, caches can be established to store voice data for transmission to the handset from the calling party, and to store voice data from the handset for transmission to the called party, or other suitable processes or algorithms can also or alternatively be used. The algorithm then proceeds to 212.

At 212, voice channel data is received and transmitted between the called and calling parties. In one exemplary embodiment, one or more software applications for providing VoLTE voice communications can be used to monitor buffered data and to transmit the buffered data at suitable times to support duplex voice communications over a packet switched network, to provide echo cancellation, to provide noise suppression and for other suitable purposes. The algorithm then proceeds to 214.

At 214, it is determined whether the call has ended. In one exemplary embodiment, an on hook signal can be generated when a calling party or the local handset terminates the call, an activity detector can determine that no activity has occurred for a predetermined period of time or other suitable processes can also or alternatively be used to determine whether the call has ended. If it is determined that the call has ended, the algorithm proceeds to 216, where the VoLTE proxy is reset to receive another incoming call or to set up an outgoing call from one of the handsets. Otherwise, the algorithm returns to 212.

In operation, algorithm 200 allows a VoLTE proxy to receive an incoming call and to generate a ring signal to allow a handset to answer the incoming call. The VoLTE proxy can service a number of different handsets, and can generate the same ringtone on each handset, or can generate different ring tones on different handsets, such as where the VoLTE proxy can receive calls for different telephone numbers. Although algorithm 300 is shown as a flow chart, algorithm 200 can also or alternatively be implemented using object oriented programming, state diagrams or other suitable programming paradigms.

FIG. 3 is a diagram of an algorithm 300 for setting up a call at a VoLTE-enabled device, in accordance with an exemplary embodiment of the present disclosure. Algorithm 300 can be implemented in hardware or a suitable combination of hardware and software, and can be one or more software systems operating on one or more processors.

Algorithm 300 begins at 302, where a calling session is initiated at a handset. In one exemplary embodiment, the calling session can be initiated by activating an application that operates on the handset and which sets up a sender and listener on the handset and a corresponding listener and sender on a WiFi hotspot, by generating a dialer user interface on the handset or in other suitable manners. The algorithm then proceeds to 304.

At 304, access security is processed, such as by determining whether the handset has credentials to access the WiFi hotspot, by generating a user interface prompt to enter a PIN number or access code or in other suitable manners. In one exemplary embodiment, access security can be determined when the handset originally obtains access to the WiFi hotspot, prior to initiating the calling session or in other suitable manners. The algorithm then proceeds to 306.

At 306, a call is initiated from a VoLTE proxy operating on the WiFi hotspot. In one exemplary embodiment, the WiFi hotspot can include a processor and associated software applications that cause the processor to execute a series of instructions that receive a calling number from a handset, that set up a call with a called party using a VoLTE server or other suitable packet-switched voice communications protocols, that manage communications once the call is in progress and that perform other suitable functions. The VoLTE proxy can also or alternatively manage multiple calls from multiple handsets, such as by managing different telephone numbers for each handset or in other suitable manners. The algorithm then proceeds to 308.

At 308, it is determined whether the called party has answered the call, such as by monitoring the status of a data register that is updated when an off-hook signal is received from the called party or in other suitable manners. If it is determined that the called party has not answered the call after a predetermined number of rings, a predetermined period time or in other suitable manners, the algorithm proceeds to 314, otherwise the algorithm proceeds to 310 where a voice channel with the called party is established. The algorithm then proceeds to 312, where voice data is received and transmitted from the calling handset to the called party. In one exemplary embodiment, the VoLTE proxy operating on the WiFi hotspot can buffer data received from the handset and the called party and can manage the transmission and reception of data to process the data to reduce echo signals, to improve sound quality, to reduce noise, to avoid delays and for other suitable purposes. The algorithm then proceeds to 314.

At 314, it is determined whether the call has terminated. In one exemplary embodiment, the called party can send an on-hook signal or other suitable data that can be used to determine that the call has ended, an activity detector or other suitable systems can be used to determine if the called party has terminated the call or other suitable processes can also or alternatively be used. If it is determined that the call has not ended, the algorithm returns to 312, otherwise the algorithm proceeds to 316, where the VoLTE proxy is reset.

In operation, algorithm 300 allows a WiFi hotspot to operate a VoLTE proxy, to allow a handset that has access to WiFi to use the VoLTE services to place calls over a packet switched network. Although algorithm 300 is shown as a flow chart, algorithm 300 can also or alternatively be implemented using object oriented programming, state diagrams or other suitable programming paradigms.

It should be emphasized that the above-described embodiments are merely examples of possible implementations. Many variations and modifications may be made to the above-described embodiments without departing from the principles of the present disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims. 

What is claimed is:
 1. A non-transitory computer-readable medium comprising instructions which, when executed on one or more processors, cause the one or more processors to perform steps comprising: receive an incoming call for a first handset device from a switched network; determine a current call state of the first handset device and a second handset device at a proxy device; deliver the incoming call from a server using the proxy device as a voice over packet network (VOPN) call to a VOPN calling software application on the first handset device if the first handset device and the second handset device are not currently engaged on a pre-existing VOPN call using the proxy device; and deactivate the second handset device from receiving the VOPN call via the VOPN calling software application, if the first handset device is currently engaged on the VOPN call.
 2. The non-transitory computer-readable medium instructions of claim 1 which, when executed on the one or more processors, cause the one or more processors to further perform the step of provide a call service using the VOPN calling software application.
 3. The non-transitory computer-readable medium instructions of claim 2 wherein the call service is a ring tone call service.
 4. The non-transitory computer-readable medium instructions of claim 1 which, when executed on the one or more processors, cause the one or more processors to further perform the step of route the incoming call to the server.
 5. The non-transitory computer-readable medium instructions of claim 1 wherein the server is between an operator network and the proxy device.
 6. The non-transitory computer-readable medium instructions of claim 1 wherein the server is enabled to be accessed by the VOPN calling software application on the first handset device for handling VOPN calls and for determining a current call state of the first handset device.
 7. A system for processing data, comprising: one or more processors configured to receive an incoming call for a first handset device from a switched network; the one or more processors configured to determine a current call state of the first handset device and a second handset device at a proxy device; the one or more processors configure to deliver the incoming call from a server using the proxy device as a voice over packet network (VOPN) call to a VOPN calling software application on the first handset device if the first handset device and the second handset device are not currently engaged on a pre-existing VOPN call using the proxy device; and the one or more processors configured to deactivate the second handset device from receiving the VOPN call via the VOPN calling software application, if the first handset device is currently engaged on the VOPN call.
 8. The system of claim 7 wherein the one or more processors are configured to provide a call service using the VOPN calling software application.
 9. The system of claim 8 wherein the call service is a ring tone call service.
 10. The system of claim 7 wherein the one or more processors are configured to route the incoming call to the server.
 11. The system of claim 7 wherein the server is between an operator network and the proxy device.
 12. The system of claim 7 wherein the server is enabled to be accessed by the VOPN calling software application on the first handset device for handling VOPN calls and for determining a current call state of the first handset device.
 13. A method for processing data comprising: receiving an incoming call for a first handset device from a switched network; determining a current call state of the first handset device and a second handset device at a proxy device; delivering the incoming call from a server using the proxy device as a voice over packet network (VOPN) call to a VOPN calling software application on the first handset device if the first handset device and the second handset device are not currently engaged on a pre-existing VOPN call using the proxy device; and deactivating the second handset device from receiving the VOPN call via the VOPN calling software application, if the first handset device is currently engaged on the VOPN call.
 14. The method of claim 13 further comprising providing a call service using the VOPN calling software application.
 15. The method of claim 14 wherein the call service is a ring tone call service.
 16. The method of claim 13 further comprising routing the incoming call to the server.
 17. The method of claim 13 wherein the server is between an operator network and the proxy device.
 18. The method of claim 13 wherein the server is enabled to be accessed by the VOPN calling software application on the first handset device for handling VOPN calls and for determining a current call state of the first handset device.
 19. The method of claim 13 wherein the server is enabled to be accessed by the VOPN calling software application on the first handset device for handling VOPN calls.
 20. The method of claim 13 wherein the server is enabled to be accessed by the VOPN calling software application on the first handset device for determining a current call state of the first handset device. 